package vista;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JSeparator;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import negocio.beans.central.Proveedor;
import controlador.CasaCentral;


public class Proveedores extends javax.swing.JFrame {

	private static final long serialVersionUID = 1L;
	private JButton btnAlta;
	private JButton btnBaja;
	private JSeparator jSeparator2;
	private JSeparator jSeparator1;
	private JLabel lblTitulo;
	private JButton btnListaPrecios;
	private JTable tblProveedores;
	private JButton btnModificacion;
	
	
	
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				Proveedores inst = new Proveedores();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
								
				
			}
		});
	}
	
	public Proveedores() {
		super();
		initGUI();

		CentrarJFrame();
		
		LlenarTablaProveedores();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setBackground(new java.awt.Color(202,203,251));
			getContentPane().setLayout(null);
			this.setResizable(false);
			this.setLocationByPlatform(true);
			{
				btnAlta = new JButton();
				getContentPane().add(btnAlta);
				btnAlta.setText("Agregar");
				btnAlta.setBounds(17, 36, 85, 21);
				btnAlta.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						ProveedoresAlta p = new ProveedoresAlta();
						p.setVisible(true);
						p.setTblProveedores(tblProveedores);
					}
				});
			}
			{
				btnBaja = new JButton();
				getContentPane().add(btnBaja);
				btnBaja.setText("Borrar");
				btnBaja.setBounds(222, 36, 85, 21);
				btnBaja.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						CasaCentral.getInstancia().bajaProveedor(tblProveedores.getValueAt(tblProveedores.getSelectedRow(),0).toString());
						
						DefaultTableModel temp = (DefaultTableModel) tblProveedores.getModel();						
												
						temp.removeRow(tblProveedores.getSelectedRow());
					}
				});
			}
			{
				btnModificacion = new JButton();
				getContentPane().add(btnModificacion);
				btnModificacion.setText("Modificar");
				btnModificacion.setBounds(113, 36, 98, 21);
				btnModificacion.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						
						
						Proveedor prov = CasaCentral.getInstancia().obtenerProveedor(tblProveedores.getValueAt(tblProveedores.getSelectedRow(),0).toString());
						
						ProveedoresModificacion pantallaProveedores = new ProveedoresModificacion();
						pantallaProveedores.setVisible(true);
						pantallaProveedores.setProveedor(prov);
						pantallaProveedores.setTblProveedores(tblProveedores);
						
						
						
					}
				});
			}
			{
				TableModel tblProveedoresModel = 
					new DefaultTableModel(
							new String[][] { { "Razon Social"}},
							new String[] { "clmRazonSocial"});
				tblProveedores = new JTable();
				getContentPane().add(tblProveedores);
				tblProveedores.setModel(tblProveedoresModel);
				tblProveedores.setBounds(17, 68, 290, 158);
			}
			{
				btnListaPrecios = new JButton();
				getContentPane().add(btnListaPrecios);
				btnListaPrecios.setText("Lista de Precios");
				btnListaPrecios.setBounds(17, 235, 135, 21);
				btnListaPrecios.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						ListaDePrecios l = new ListaDePrecios(tblProveedores.getValueAt(tblProveedores.getSelectedRow(),0).toString());
						l.setVisible(true);
					}
				});
			}
			{
				lblTitulo = new JLabel();
				getContentPane().add(lblTitulo);
				lblTitulo.setText("Proveedores");
				lblTitulo.setBounds(96, 7, 126, 17);
				lblTitulo.setFont(new java.awt.Font("Book Antiqua",1,16));
				lblTitulo.setBorder(new LineBorder(new java.awt.Color(0,0,0), 1, false));
				lblTitulo.setBackground(new java.awt.Color(255,255,255));
				lblTitulo.setOpaque(true);
				lblTitulo.setHorizontalAlignment(SwingConstants.CENTER);
			}
			{
				jSeparator1 = new JSeparator();
				getContentPane().add(jSeparator1);
				jSeparator1.setBounds(218, 15, 90, 10);
			}
			{
				jSeparator2 = new JSeparator();
				getContentPane().add(jSeparator2);
				jSeparator2.setBounds(17, 14, 79, 10);
			}
			pack();
			this.setSize(332, 300);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private void CentrarJFrame(){
		
	    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
	    
	    
	    int w = this.getSize().width;
	    int h = this.getSize().height;
	    int x = (dim.width-w)/2;
	    int y = (dim.height-h)/2;
	    
	    
	    this.setLocation(x, y);
	}
	
	private void LlenarTablaProveedores(){
		List<Proveedor> proveedores = CasaCentral.getInstancia().obtenerProveedores();
		
		DefaultTableModel temp = (DefaultTableModel) tblProveedores.getModel();
		
		for(Proveedor prov : proveedores){
									
			Object nuevo[]= {prov.getRazonSocial()};
			temp.addRow(nuevo);
		}
	}
	
}
